通过阅读本文,你可以了解Linux推流SDK所涉及的数据类型。
目录
数据类型 | 描述 |
---|---|
rts_frame | 封装音频帧和视频帧的信息类型。 |
rts_golbal_config_t | 全局配置。 |
rts_log_config_t | 日志配置。 |
rts_config_t | 推流相关配置。 |
rts_stream_config_t | 音视频相关配置。 |
rts_event_handler_t | 事件回调配置。 |
详情
- rts_frame:封装音频帧和视频帧的信息类型。
struct rts_frame { void *buf; int size; int is_audio; unsigned long long pts; unsigned long long dts; };
数据成员 描述 buf frame数据buffer,视频h264要求是AnnexB格式,nalu头部是{0, 0, 0, 1}。 size buf的字节数。 is_audio 是否是音频帧。取值: - 1:音频帧。
- 0:视频帧。
pts 演示时间戳。单位:毫秒。 dts 解码时间戳。单位:毫秒。 - rts_golbal_config_t:全局配置。
typedef struct { rts_log_config_t log_config; } rts_golbal_config_t;
数据成员 描述 rts_log_config_t 日志配置结构体。 - rts_log_config_t:日志配置。
typedef struct { int max_file_size; int log_keep_count; RTS_LOG_LEVEL log_level; } rts_log_config_t; typedef enum { RTS_LOG_NONE = 0, RTS_LOG_DEBUG = 1, RTS_LOG_INFO = 2, RTS_LOG_WARN = 3, RTS_LOG_ERROR = 4, } RTS_LOG_LEVEL;
数据成员 描述 max_file_size 单个日志文件最大文件大小,单位MB。 log_keep_count 保留日志文件个数。 log_level 打印日志等级,线上建议设置RTS_LOG_ERROR,否则日志太多会影响性能。 - rts_config_t:推流相关配置。
typedef struct { rts_stream_config_t stream_config; rts_event_handler_t event_handle; } rts_config_t;
数据成员 描述 stream_config 推流音视频相关配置。 event_handle 推流事件回调接口配置。 - rts_stream_config_t:音视频相关配置。
typedef struct { rts_codec pub_audio_codec; int pub_audio_sample_rate int pub_audio_channels; rts_codec pub_video_codec; } rts_stream_config_t; typedef enum { RTS_CODEC_H264 = 3, RTS_CODEC_OPUS = 1000, } rts_codec;
数据成员 描述 pub_audio_codec 音频编码格式,目前只支持opus,opus 帧长要求是20ms。不支持AAC编码。 pub_audio_sample_rate 音频采样率,目前只支持48000。 pub_audio_channels 音频声道数, 取值: - 1:单声道。
- 2:双声道。
pub_video_codec 视频编码格式,目前只支持H264。视频不支持B帧。 - rts_event_handler_t:推流事件回调接口配置。
typedef struct { void (*on_key_frame_req)(void *user_data); void (*on_disconnected)(void *user_data); void (*on_publish)(void *user_data, int result); void *user_data; } rts_event_handler_t;
数据成员 描述 on_key_frame_req 请求关键帧回调,收到该请求后设置编码器生成关键帧。 on_disconnected 网络连接断开回调,由于网络异常等导致连接断开。 on_publish 推流建连是否成功回调,建连过程是异步的,需要回调通知用户是否成功。 user_data 用户输入的自定义信息,之后的回调参数中会携带该user_data。